<!DOCTYPE html>
<html lang="ar">
	<head>
		<meta charset="utf-8" />
		<base href="../../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body class="rtl">
		<h1>[name]</h1>

		<p class="desc">
			يتعامل ويتتبع البيانات المحملة والمعلقة. يتم إنشاء نسخة عالمية افتراضية
			من هذه الفئة واستخدامها من قبل المحملات إذا لم يتم توفيرها
			يدويًا - انظر [page:DefaultLoadingManager].<br /><br />
		 
			بشكل عام يجب أن يكون ذلك كافيًا، ولكن هناك أوقات يمكن أن تكون فيها
			مفيدًا لديك محملات منفصلة - على سبيل المثال إذا كنت ترغب في عرض
			شرائط تحميل منفصلة للأشياء والقوام.
		</p>
		 
		<h2>مثال للكود</h2>
		 
		<p>
		يوضح هذا المثال كيفية استخدام LoadingManager لتتبع التقدم
		[page:OBJLoader].
		</p>
		 
		<code>
		const manager = new THREE.LoadingManager();
		manager.onStart = function ( url, itemsLoaded, itemsTotal ) {
			console.log( 'Started loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
		};
	
		manager.onLoad = function ( ) {
			console.log( 'Loading complete!');
		};
	
		manager.onProgress = function ( url, itemsLoaded, itemsTotal ) {
			console.log( 'Loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
		};
	
		manager.onError = function ( url ) {
			console.log( 'There was an error loading ' + url );
		};
	
		const loader = new OBJLoader( manager );
		loader.load( 'file.obj', function ( object ) {
			//
		} );
		</code>
		 
		<p>
		بالإضافة إلى مراقبة التقدم، يمكن استخدام LoadingManager ل
		تجاوز عناوين URL للموارد أثناء التحميل. قد يكون ذلك مفيدًا للأصول
		القادمة من أحداث السحب والإفلات، WebSockets، WebRTC، أو غيرها من واجهات برمجة التطبيقات. A
		مثال يظهر كيفية تحميل نموذج في الذاكرة باستخدام عناوين URL لـ Blob أدناه.
		</p>
		 
		<code>
		// Blob or File objects created when dragging files into the webpage.
		const blobs = {'fish.gltf': blob1, 'diffuse.png': blob2, 'normal.png': blob3};
	
		const manager = new THREE.LoadingManager();
	
		// Initialize loading manager with URL callback.
		const objectURLs = [];
		manager.setURLModifier( ( url ) => {
	
			url = URL.createObjectURL( blobs[ url ] );
			objectURLs.push( url );
			return url;
	
		} );
	
		// Load as usual, then revoke the blob URLs.
		const loader = new GLTFLoader( manager );
		loader.load( 'fish.gltf', (gltf) => {
	
			scene.add( gltf.scene );
			objectURLs.forEach( ( url ) => URL.revokeObjectURL( url ) );
	
		});
		</code>

		<h2>أمثلة (Examples)</h2>

		<p>
		[example:webgl_loader_obj WebGL / loader / obj]<br />
		[example:webgl_postprocessing_outline WebGL / postprocesing / outline]
		</p>
	 
		<h2>المنشئ (Constructor)</h2>
		<h3>
		[name]( [param:Function onLoad], [param:Function onProgress],
		[param:Function onError] )
		</h3>
		<p>
		[page:Function onLoad] — (اختياري) سيتم استدعاء هذه الدالة عندما يتم
		جميع المحملات.<br />
		[page:Function onProgress] — (اختياري) سيتم استدعاء هذه الدالة عند
		اكتمال عنصر.<br />
		[page:Function onError] — (اختياري) سيتم استدعاء هذه الدالة عندما يواجه المحمل
		أخطاء. <br />
	 
		ينشئ جديدًا [name].
		</p>
	 
		<h2>الخصائص (Properties)</h2>
	 
		<h3>[property:Function onStart]</h3>
		<p>
		سيتم استدعاء هذه الدالة عند بدء التحميل. المعاملات هي:<br />
		[page:String url] — عنوان url للعنصر المحمل للتو.<br />
		[page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.<br />
		[page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.<br /><br />
	 
		بشكل افتراضي هذا غير محدد.
		</p>

		<h3>[property:Function onLoad]</h3>
		<p>
		سيتم استدعاء هذه الدالة عند اكتمال جميع التحميلات. بشكل افتراضي
		هذا غير محدد، ما لم يتم تمريره في المنشئ.
		</p>
	 
		<h3>[property:Function onProgress]</h3>
		<p>
		سيتم استدعاء هذه الدالة عند اكتمال عنصر. المعاملات
		هي:<br />
		[page:String url] — عنوان url للعنصر المحمل للتو.<br />
		[page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.<br />
		[page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.<br /><br />
	 
		بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
		</p>
	 
		<h3>[property:Function onError]</h3>
		<p>
		سيتم استدعاء هذه الدالة عند حدوث خطأ في أي عنصر، مع الحجة:<br />
		[page:String url] — عنوان url للعنصر الذي حدث فيه خطأ.<br /><br />
	 
		بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
		</p>
	 
		<h2>الطرق (Methods)</h2>
	 
		<h3>
		[method:this addHandler]( [param:Object regex], [param:Loader loader] )
		</h3>
		<p>
		[page:Object regex] — تعبير منتظم.<br />
		[page:Loader loader] — المحمل.
		</p>
	 
		<p>
		يسجل محملًا مع التعبير المنتظم المعطى. يمكن استخدامه ل
		تحديد أي محمل يجب استخدامه لتحميل ملفات معينة. A
		حالة استخدام نموذجية هي الكتابة فوق المحمل الافتراضي للقوام.
		</p>
		<code>
// add handler for TGA textures 
manager.addHandler( /\.tga$/i, new TGALoader() );
		</code>
	 
		<h3>[method:Loader getHandler]( [param:String file] )</h3>
		<p>[page:String file] — مسار الملف.</p>
	 
		<p>
		يمكن استخدامه لاسترجاع المحمل المسجل لمسار الملف المعطى.
		</p>
	 
		<h3>[method:this removeHandler]( [param:Object regex] )</h3>
		<p>[page:Object regex] — تعبير منتظم.</p>
	 
		<p>يزيل المحمل للتعبير المنتظم المعطى.</p>

		<h3>[method:String resolveURL]( [param:String url] )</h3>
		<p>
		[page:String url] — عنوان url للتحميل<br /><br />
	 
		بالنظر إلى عنوان URL، يستخدم رد الاتصال بتعديل URL (إن وجد) ويعيد
		عنوان URL المحلول. إذا لم يتم تعيين تعديل URL، فسيتم إرجاع العنوان الأصلي.
		</p>
	 
		<h3>[method:this setURLModifier]( [param:Function callback] )</h3>
		<p>
		[page:Function callback] — رد اتصال تعديل URL. يتم استدعاؤه مع [page:String url] الحجة،
		ويجب أن يعود [page:String resolvedURL].<br /><br />
	 
		إذا تم توفيره، سيتم تمرير رد الاتصال لكل عنوان URL للمورد قبل
		يتم إرسال طلب. قد يعود الرد الاتصال بالعنوان الأصلي، أو عنوان URL جديد ل
		تجاوز سلوك التحميل. يمكن استخدام هذا السلوك لتحميل الأصول من
		ملفات .ZIP، واجهات برمجة التطبيقات السحب والإفلات، وعناوين URI البيانات.
		</p>
	 
		<br />
	 
		<p>
		<em>
		ملاحظة: تم تصميم الطرق التالية ليتم استدعاؤها داخليًا من قبل
		المحملات. يجب ألا تستدعيها مباشرة.
		</em>
		</p>
	 
		<h3>[method:undefined itemStart]( [param:String url] )</h3>
		<p>
		[page:String url] — عنوان url للتحميل<br /><br />
	 
		يجب استدعاء هذا من قبل أي محمل يستخدم المدير عندما يبدأ المحمل
		تحميل عنوان url.
		</p>
	 
		<h3>[method:undefined itemEnd]( [param:String url] )</h3>
		<p>
		[page:String url] — عنوان url المحمَّل<br /><br />
	 
		يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند انتهاء المحمل
		تحميل عنوان url.
		</p>
	 
		<h3>[method:undefined itemError]( [param:String url] )</h3>
		<p>
		[page:String url] — عنوان url المحمَّل<br /><br />
	 
		يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند حدوث خطأ في المحمل
		تحميل عنوان url.
		</p>
	 
		<h2>المصدر (Source)</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/loaders/LoadingManager.js src/loaders/LoadingManager.js]
		</p>
	</body>
</html>
